#pragma once

enum POINT_TYPE {
	UNDEFINED,
	RECT_POINT_LEFT,
	RECT_POINT_RIGHT
};

class CFIT_6204_Gorodilov_Point
{
public:
	CFIT_6204_Gorodilov_Point(void);
	virtual ~CFIT_6204_Gorodilov_Point(void);

public:	
	const double x(void) const{
		return m_dX;
	}

	const double top(void) const {
		return __min(m_dY[0], m_dY[1]);
	}

	const double bottom(void) const {
		return __max(m_dY[0], m_dY[1]);
	}

	double& x(void) {
		return m_dX;
	}

	double& top(void) {
		return (m_dY[0] < m_dY[1])? m_dY[1] : m_dY[0];
	}

	double& bottom(void) {
		return (m_dY[0] < m_dY[1])? m_dY[0] : m_dY[1];
	}

	POINT_TYPE getPointType(void) const {
		return m_ePointType;
	};

	void setPointType(const POINT_TYPE pointType) {
		m_ePointType = pointType;
	};

private:
	double		m_dX;
	double		m_dY[2];

	POINT_TYPE	m_ePointType;
};
